RLS এর জন্য DAX Expressions তৈরি করা

DAX এর জন্য Security এবং Row-Level Security (RLS) - ড্যাক্স দিয়ে ডেটা মডেলিং (Data Modeling with DAX) - Big Data and Analytics

332

RLS (Row-Level Security) হল একটি নিরাপত্তা বৈশিষ্ট্য যা ডেটার অ্যাক্সেস নিয়ন্ত্রণ করতে ব্যবহৃত হয়। এর মাধ্যমে আপনি Power BI বা SQL Server Analysis Services (SSAS)-এ নির্দিষ্ট ব্যবহারকারীদের জন্য নির্দিষ্ট ডেটার অ্যাক্সেস সীমাবদ্ধ করতে পারেন। DAX expressions ব্যবহার করে আপনি RLS কনফিগার করতে পারেন, যাতে ডেটার কিছু অংশ শুধুমাত্র নির্দিষ্ট ব্যবহারকারীরা দেখতে পান। এই প্রক্রিয়ায়, DAX এর মাধ্যমে ফিল্টার প্রয়োগ করা হয় যাতে ডেটা একে অপরের থেকে আলাদা হয়ে থাকে।

এই প্রবন্ধে আমরা RLS সেটআপ করার জন্য DAX expressions তৈরির পদ্ধতি এবং তার উদাহরণ নিয়ে আলোচনা করব।


১. RLS (Row-Level Security) কী?

Row-Level Security (RLS) হলো একটি ডেটা সুরক্ষা কৌশল, যা ব্যবহারকারীদের নির্দিষ্ট ডেটার অ্যাক্সেস সীমাবদ্ধ করে। এটি Power BI-এ Role-based Security এর মাধ্যমে বাস্তবায়িত করা হয়, যেখানে আপনি একটি নির্দিষ্ট টেবিলের কিছু সারির উপর ভিত্তি করে নিরাপত্তা ফিল্টার প্রয়োগ করেন।

RLS এর সুবিধা:

  1. Data Isolation: একাধিক ব্যবহারকারীকে একে অপরের থেকে আলাদা ডেটা প্রদর্শন করা যায়।
  2. Dynamic Security: ব্যবহারকারী বা ব্যবহারকারীদের গ্রুপের ভিত্তিতে ডেটা প্রদর্শন বা ফিল্টার করা যায়।
  3. Simplified Access Management: একটি single data model ব্যবহার করে একাধিক গ্রুপের জন্য নিরাপত্তা প্রয়োগ করা যায়।

২. Power BI-এ RLS সেটআপ করা

Power BI তে RLS সেটআপ করার জন্য আপনাকে কিছু roles তৈরি করতে হয় এবং তারপরে DAX expressions ব্যবহার করে ফিল্টার তৈরি করতে হয়। রোলের উপর ভিত্তি করে ব্যবহারকারী ডেটা দেখতে পারবেন।

Steps to Set up RLS in Power BI:

  1. Open Power BI Desktop এবং Modeling Tab এ যান।
  2. Manage Roles নির্বাচন করুন।
  3. Create New Role করুন এবং তার জন্য একটি নাম দিন, যেমন Sales Manager, Regional Manager ইত্যাদি।
  4. DAX Expression দিয়ে রোলের জন্য ফিল্টার তৈরির কাজ শুরু করুন।

৩. DAX Expressions for RLS

DAX expressions ব্যবহার করে আপনি RLS roles তৈরি করতে পারেন, যেগুলি ডেটাকে ফিল্টার করে নির্দিষ্ট ব্যবহারকারীদের জন্য ডেটার অ্যাক্সেস কাস্টমাইজ করবে।

3.1. Basic DAX Expression for RLS

ধরা যাক, আপনার Sales টেবিলের একটি Region কলাম রয়েছে এবং আপনি চান যে Sales Manager রোলের জন্য শুধুমাত্র নির্দিষ্ট Region (যেমন "North" বা "South") এর ডেটা দেখা যাবে। আপনি DAX expression ব্যবহার করে এটি কনফিগার করতে পারেন।

[Region] = "North"

এটি Sales Manager রোলের জন্য শুধুমাত্র Region = "North" এর ডেটা দেখাবে।

3.2. Dynamic RLS with User Login (USERNAME)

আপনি যদি চান যে, প্রতিটি ব্যবহারকারীকে তাদের নিজস্ব Region বা Sales Territory দেখানো হোক, তবে আপনি USERNAME ফাংশন ব্যবহার করতে পারেন। এটি user-specific ডেটা অ্যাক্সেস নিয়ন্ত্রণ করতে সহায়ক।

ধরা যাক, আপনি একটি Users টেবিল তৈরি করেছেন, যেখানে প্রতিটি ব্যবহারকারীর জন্য একটি Region কলাম আছে। এখন আপনি চাইছেন যে ব্যবহারকারী তাদের Region অনুযায়ী শুধুমাত্র সেই ডেটা দেখতে পান।

[Region] = LOOKUPVALUE(Users[Region], Users[Username], USERNAME())

এখানে:

  • LOOKUPVALUE ফাংশনটি Users টেবিলের Region কলামটি খুঁজে বের করে, যেখানে Username কলামটি বর্তমান ব্যবহারকারীর USERNAME() এর সাথে মিলে।
  • USERNAME() ফাংশনটি বর্তমান লগড-ইন ব্যবহারকারীর ইউজারনেম ফেরত দেয়।

3.3. Using Multiple Conditions in RLS

আপনি যদি একাধিক শর্তের ভিত্তিতে RLS সেটআপ করতে চান, তবে AND বা OR ব্যবহার করতে পারেন। যেমন, আপনি চান যে ব্যবহারকারী শুধুমাত্র তাদের নির্দিষ্ট Region এবং SalesAmount এর উপর ভিত্তি করে ডেটা দেখতে পান।

[Region] = "North" && [SalesAmount] > 1000

এটি Sales টেবিলের Region "North" এবং SalesAmount 1000 এর বেশি হলে ডেটা দেখাবে।

3.4. Using Multiple Roles in RLS

RLS এর মধ্যে একাধিক রোল তৈরি করতে পারেন, যেমন একটি রোল শুধুমাত্র North রিজিয়নের জন্য এবং আরেকটি রোল South রিজিয়নের জন্য। এতে ব্যবহারকারীদের একটি নির্দিষ্ট অঞ্চলের উপর অ্যাক্সেস প্রদান করা হবে।

[Region] = "North" 

এটি একটি রোলের জন্য Region = North এর ডেটা দেবে, অন্য একটি রোলের জন্য:

[Region] = "South"

এভাবে আপনি North এবং South রিজিয়নের জন্য আলাদা রোল এবং নিরাপত্তা ফিল্টার তৈরি করতে পারেন।

3.5. Using RLS for Multiple Tables

যদি আপনার ডেটা মডেলে একাধিক টেবিল থাকে এবং আপনি তাদের মধ্যে সম্পর্ক তৈরি করতে চান, তাহলে RLS সেটআপ করার সময় সম্পর্কিত টেবিলের কলামগুলির উপরও ফিল্টার প্রয়োগ করতে পারেন। উদাহরণস্বরূপ:

[Region] = RELATED(Users[Region])

এটি Users টেবিলের Region কলামটি Sales টেবিলের Region কলামের সাথে সম্পর্কিত করবে এবং সেগুলি ফিল্টার করবে।


৪. Test RLS Configuration

RLS কনফিগার করার পর, এটি সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করার জন্য Testing করা গুরুত্বপূর্ণ। Power BI-এ আপনি View as Roles ফিচার ব্যবহার করে রোল পরীক্ষা করতে পারেন।

Steps to Test RLS:

  1. Modeling Tab এ যান এবং Manage Roles নির্বাচন করুন।
  2. একটি রোল নির্বাচন করুন এবং View as Role ক্লিক করুন।
  3. Power BI তখন আপনাকে সেই রোলের অধীনে ডেটা দেখাবে।

৫. Best Practices for DAX RLS Expressions

  1. Keep Expressions Simple: DAX expressions সহজ এবং কার্যকরী রাখুন, কারণ জটিল এক্সপ্রেশনগুলি পারফরম্যান্সে প্রভাব ফেলতে পারে।
  2. Use Lookup Functions: LOOKUPVALUE বা RELATED ফাংশন ব্যবহার করে সম্পর্কিত টেবিল থেকে ডেটা আনুন, যা RLS ফিল্টার ব্যবস্থাপনাকে আরও শক্তিশালী করে।
  3. Test Thoroughly: RLS কনফিগারেশনটি সঠিকভাবে কাজ করছে কিনা তা নিশ্চিত করার জন্য নিয়মিত পরীক্ষা করুন।
  4. Limit Use of Bi-Directional Relationships: Bi-directional relationships ব্যবহারে সতর্কতা অবলম্বন করুন, কারণ এগুলি RLS এর জন্য অতিরিক্ত filter propagation তৈরি করতে পারে।

সারাংশ

RLS (Row-Level Security) একটি শক্তিশালী ডেটা সুরক্ষা ব্যবস্থা, যা DAX expressions ব্যবহার করে Power BI বা SSAS ডেটা মডেলে প্রয়োগ করা হয়। DAX expressions দিয়ে আপনি কাস্টম ফিল্টার তৈরি করতে পারেন যা ব্যবহারকারীদের তাদের অ্যাক্সেসের উপর ভিত্তি করে ডেটা প্রদর্শন করবে। LOOKUPVALUE, USERNAME(), RELATED, এবং FILTER ফাংশনগুলো ব্যবহার করে dynamic RLS কনফিগারেশন তৈরি করা সম্ভব। Testing এবং Best practices মেনে চললে আপনি দক্ষ এবং নিরাপদ RLS সিস্টেম তৈরি করতে পারবেন।

Content added By
Promotion

Are you sure to start over?

Loading...